// // 深度优先搜索
// dfs(handle) {
//     // 1.初始化颜色
//     let color = this._initializeColor()
//     // 2. 遍历所有顶点，开始访问
//     for (let i = 0; i < this.vertexes.length; i++) {
//         if (color[this.vertexes[i]] === "white") {
//             this._dfsVisit(this.vertexes[i], color, handle)
//         }
//     }
// }
// // dfs 的递归方法  这里直接使用函数的调用栈
// _dfsVisit(val, color, handle) {
//     // 1. 将颜色设置为访问中
//     color[val] = "gray"
//     // 2. 执行相应的回调
//     if (handle) {
//         handle(val)
//     }
//     // 3. 拿与该点相邻的点，对每个点操作
//     let adj = this.adjList.get(val)
//     for (let i = 0; i < adj.length; i++) {
//         let w = adj[i]
//         // 如果相邻点未未访问状态，开始访问。
//         if (color[w] === "white") {
//             this._dfsVisit(w, color, handle)
//         }
//     }
//     // 4. 处理完后设置为访问过点。
//     color[val] = "black"
// }



// // 调用深度优先算法
// result = "";
// graph.dfs(function (v) {
//   result += v + " ";
// });
// // 输出深度优先
// console.log(result); //A B E I F C D G H